package integrationTier;

import core.MovieException;

/**
 *Trida pro praci DAO objekty.
 * @author vojta
 */
abstract public class AbstractDAOFactory {
        public static AbstractDAOFactory createSQLDAOFactory(String path) throws MovieException{
            return new SQLDAOFactory(path, "sa", "");
        }

        /**
         * Vrati DAO objekt k zanrum
         * @return IGenreDAO
         * @throws MovieException
         */
        public abstract IGenreDAO getGenreDAO() throws MovieException;

        /**
         * Vrati DAO objekt k mediim
         * @return IMediumDAO
         * @throws MovieException
         */
        public abstract IMediumDAO getMediumDAO() throws MovieException;

        /**
         * Vrati DAO objekt k databazi
         * @return IDatabaseDAO
         * @throws MovieException
         */
        public abstract IDatabaseDAO getDatabaseDAO() throws MovieException;

        /**
         * Vrati DAO objekt k filmum
         * @return IMovieDAO
         * @throws MovieException
         */
        public abstract IMovieDAO getMovieDAO() throws MovieException;
}